using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;

namespace Admin.NET.Application.Service.CkWarning.Dto;

/// <summary>
/// 库存预警查询输入参数
/// </summary>
public class GetCkWarningInput : BasePageInput
{
    /// <summary>
    /// 货品名称/编号
    /// </summary>
    public string? GoodsKeyword { get; set; }

    /// <summary>
    /// 货品类型
    /// </summary>
    public string? GoodsType { get; set; }

    /// <summary>
    /// 上下限预警类型
    /// </summary>
    public string? WarningType { get; set; }

    /// <summary>
    /// 当前库存最小值
    /// </summary>
    public decimal? CurrentStockMin { get; set; }

    /// <summary>
    /// 当前库存最大值
    /// </summary>
    public decimal? CurrentStockMax { get; set; }
}

/// <summary>
/// 库存预警输出参数
/// </summary>
public class CkWarningOutput
{
    /// <summary>
    /// 货品ID
    /// </summary>
    public string Id { get; set; }

    /// <summary>
    /// 序号
    /// </summary>
    public int SerialNumber { get; set; }

    /// <summary>
    /// 货品编号
    /// </summary>
    public string GoodsCode { get; set; }

    /// <summary>
    /// 货品名称
    /// </summary>
    public string GoodsName { get; set; }

    /// <summary>
    /// 规格型号
    /// </summary>
    public string Specs { get; set; }

    /// <summary>
    /// 单位
    /// </summary>
    public string Unit { get; set; }

    /// <summary>
    /// 货品类型
    /// </summary>
    public string GoodsType { get; set; }

    /// <summary>
    /// 当前库存
    /// </summary>
    public decimal CurrentStock { get; set; }

    /// <summary>
    /// 库存下限
    /// </summary>
    public decimal StockLowerLimit { get; set; }

    /// <summary>
    /// 库存上限
    /// </summary>
    public decimal StockUpperLimit { get; set; }

    /// <summary>
    /// 低于下限百分比
    /// </summary>
    public decimal BelowLowerLimitPercent { get; set; }

    /// <summary>
    /// 高于上限百分比
    /// </summary>
    public decimal AboveUpperLimitPercent { get; set; }
}

/// <summary>
/// 导出库存预警数据
/// </summary>
public class ExportCkWarningOutput
{
    /// <summary>
    /// 货品编号
    /// </summary>
    public string GoodsCode { get; set; }

    /// <summary>
    /// 货品名称
    /// </summary>
    public string GoodsName { get; set; }

    /// <summary>
    /// 规格型号
    /// </summary>
    public string Specs { get; set; }

    /// <summary>
    /// 单位
    /// </summary>
    public string Unit { get; set; }

    /// <summary>
    /// 货品类型
    /// </summary>
    public string GoodsType { get; set; }

    /// <summary>
    /// 当前库存
    /// </summary>
    public decimal CurrentStock { get; set; }

    /// <summary>
    /// 库存下限
    /// </summary>
    public decimal StockLowerLimit { get; set; }

    /// <summary>
    /// 库存上限
    /// </summary>
    public decimal StockUpperLimit { get; set; }

    /// <summary>
    /// 低于下限百分比
    /// </summary>
    public decimal BelowLowerLimitPercent { get; set; }

    /// <summary>
    /// 高于上限百分比
    /// </summary>
    public decimal AboveUpperLimitPercent { get; set; }
}

